package com.demo.shardingsphere5.annotation;

import java.lang.annotation.*;

/**
 * 分片注解，使用注解时两个属性不能同时赋值空字符或空值
 * 如果两个属性同时有值，优先使用shardingColumn
 * @author K
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ShardingStrategy {

    /**
     * 分片值，shardingValue赋值入参参数名，获取入参的值进行取模，获取指定db
     * 使用SpEL表达式
     * @return 分片字段
     */
    String shardingValue() default "";

    /**
     * 指定db，获取入参的值得到指定db
     * @return db索引
     */
    String dbIndex() default "";
}
